home *** CD-ROM | disk | FTP | other *** search
/ Programmer Power Tools / Programmer Power Tools.iso / math / math.arc / FGETS.C < prev    next >
Text File  |  1988-07-21  |  1KB  |  58 lines

  1.  
  2. /* Copyright (C) 1981,1982 by Manx Software Systems and Thomas Fenwick */
  3. #include "stdio.h"
  4.  
  5. char *gets(line)
  6. char *line;
  7. {
  8.         register char *cp;
  9.         register int i;
  10.  
  11.         cp = line;
  12.         while ((i = getchar()) != EOF && i != '\n')
  13.                 *cp++ = i;
  14.         *cp = 0;
  15.         if (i == EOF && cp == line)
  16.                 return NULL;
  17.         return line;
  18. }
  19.  
  20. char *fgets(s, n, fp)
  21. char *s; FILE *fp;
  22. {
  23.         register c;
  24.         register char *cp;
  25.  
  26.         cp = s;
  27.         while (--n > 0 && (c = agetc(fp)) != EOF) {
  28.                 *cp++ = c;
  29.                 if (c == '\n')
  30.                         break;
  31.         }
  32.         *cp = 0;
  33.         if (c == EOF && cp == s)
  34.                 return NULL;
  35.         return(s);
  36. }
  37.  
  38. agetc(ptr)
  39. register FILE *ptr;
  40. {
  41.         register int c;
  42.  
  43. top:
  44.         if ((c = getc(ptr)) != EOF) {
  45.                 switch (c &= 127) {
  46.                 case 0x1a:
  47.                         --ptr->_bp;
  48.                         return EOF;
  49.                 case '\r':
  50.                 case 0:
  51.                         goto top;
  52.                 }
  53.         }
  54.         return c;
  55. }
  56.  
  57.  
  58.